const path = require('path');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const DIST_ROOT = 'dist';
// 项目部署在服务器里的绝对路径，默认'/'，参考https://cli.vuejs.org/zh/config/#baseurl
const BASE_URL = '/';

module.exports = {
    css: {
        loaderOptions: {
            less: {
                // 若使用 less-loader@5，请移除 lessOptions 这一级，直接配置选项。
                lessOptions: {
                    modifyVars: {
                        // 或者可以通过 less 文件覆盖（文件路径为绝对路径）
                        hack: `true; @import "src/assets/styles/reset-vant.less";`,
                    },
                },
            },
        },
    },
    configureWebpack:{
        resolve: {
            alias: {
                'vue$': 'vue/dist/vue.esm.js'
            }
        },

        plugins: [
            new CopyWebpackPlugin([
                { from: `static`, to: `static`,toType: 'dir' },
            ])
        ],
    },
    publicPath: '/',
    outputDir: DIST_ROOT + BASE_URL, // prerendner会借助一个express服务器来预渲染，改变baseUrl后要保证这个模拟服务器能够找到所需的资源
    assetsDir: 'assets',
    productionSourceMap: false,

    chainWebpack(config) {
        const types = ['vue-modules', 'vue', 'normal-modules', 'normal']
        types.forEach(type => addStyleResource(config.module.rule('less').oneOf(type)))
    }
};
// 全局注入theme.less
function addStyleResource (rule) {
    rule.use('style-resource')
        .loader('style-resources-loader')
        .options({
            patterns: [
                path.resolve(__dirname, './src/assets/styles/var.less')
            ],
        })
}
